5c6e1cbca8e23a96db60bf1331460c181d7a0369,src/main/java/com/acciente/oacc/ResourcePermissions.java,ResourcePermissions,getInstance,#ResourcePermission#,89

Before Change



      // validate system permission name is valid and id matches
      if (resourcePermission.isSystemPermission() &&
            !getSysPermissionName(resourcePermission.getSystemPermissionId()).equals(resourcePermission
                                                                                           .getPermissionName())) {
         throw new IllegalArgumentException("Invalid system permission id for resource permission: "
                                                  + resourcePermission.getSystemPermissionId());
      }

      if (resourcePermission.isWithGrantOption()) {
         return getInstanceWithGrantOption(resourcePermission.getPermissionName());
      }
      else {
         return getInstance(resourcePermission.getPermissionName());
      }
   }

After Change


      return new ResourcePermissionImpl(permissionName, withGrant);
   }

   public static ResourcePermission getInstance(ResourcePermission resourcePermission) {
      if (resourcePermission instanceof ResourcePermissions.ResourcePermissionImpl) {
         return resourcePermission;
      }

      final ResourcePermission verifiedPermission;

      if (resourcePermission.isWithGrantOption()) {
         verifiedPermission = getInstanceWithGrantOption(resourcePermission.getPermissionName());
      }
      else {
         verifiedPermission = getInstance(resourcePermission.getPermissionName());
      }

      // validate system permission name and id matched
      if (resourcePermission.isSystemPermission() &&
            verifiedPermission.getSystemPermissionId() != resourcePermission.getSystemPermissionId()){
         throw new IllegalArgumentException("Invalid system permission id for resource permission: " + resourcePermission);
      }